#include <bits/stdc++.h>
using namespace std;
#define MAX_SIZE 10001
int prime[MAX_SIZE];
bool arr[101] = {1, 1};
int k = 0;
void isprime(long long n) {
	for (int i = 2; i <= n; i++) {
		if (!arr[i]) {
			//TODO
			prime[++k] = i;
		}
		for (int j = 1; j <= k; j++) { //j小于当前所有的素数的个数
			if (prime[j]*i > n) {
				break;
			}
			arr[prime[j]*i] = true; //用素数依次×i，结果标记为合数
			if (i % prime[j] == 0) {
				break;
			}
		}
	}
}

int main() {
	int x, y;
	cin >> x;
	isprime(MAX_SIZE);
	for (int i = 1; i <= y; i++) {
		cin >> y;
		if (!arr[y]) { //上面标记过了，这时输入后直接判断就行了
			cout << y << " ";
		}
	}

	return 0;
}
//bool isprime(int x) {
//	int temp = sqrt(temp);
//	for (int j = 2; j <= temp; j++) {
//		if (x % j == 0)	return false;
//	}
//	return true;
//}
//int main() {
//	ios::sync_with_stdio(0);
//	cin.tie(0);
//	int x, temp;
//	cin >> x;
//	for (int i = 1; i <= x; i++) {
//		cin >> temp;
//		if (x < 2) continue;
//		if (isprime(temp)) cout << temp << " ";
//	}
//	return 0;
//}
//#include<bits/stdc++.h>
//using namespace std;
//#define int long long
//int n,a[110];
//
//int _pow(int a, int b, int m) {
//	int ans=1;
//	a%=m;
//	while(b) {
//		if(b&1) ans=ans*a%m;
//		b/=2;
//		a=a*a%m;
//	}
//	ans%=m;
//	return ans;
//}
//
//bool MR(int n, int repeat) {
//	if(n==2||n==3) return true;
//	if(n%2==0||n==1) return false;
//	int d=n-1;
//	int s=0;
//	while(!(d&1)) s++,d>>=1;
//	for(int i=1;i<=repeat;i++) {
//		int a=rand()%(n-3)+2;
//		int x=_pow(a,d,n);
//		int y=0;
//		for(int j=0;j<s;j++) {
//			y=x*x%n;
//			if(y==1&&x!=1&&x!=(n-1)) return false;
//			x=y;
//		}
//		if(y!=1) return false;
//	}
//	return true;
//}
//#undef int
//int main() {
//	cin>>n;
//	for(int i=1;i<=n;i++) {
//		cin>>a[i];
//		if(MR(a[i],60)) cout<<a[i]<<" ";
//	}
//	return 0;
//}
